/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.isd.global.web;

import com.isd.global.modelo.CorreoElectronico;
import com.isd.global.rn.CorreoElectronicoRN;
import com.isd.global.util.JsfUtil;
import com.isd.global.util.SenderEmail;
import com.isd.seguridad.web.UsuarioSessionBean;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;


/**
 *
 * @author ctrosch
 */
@ManagedBean
@SessionScoped
public class CorreoElectronicoBean {

    @EJB private CorreoElectronicoRN correoElectronicoRN;
    @EJB MailFactory mailFactoryBean;
    
    @ManagedProperty(value = "#{usuarioSessionBean}")
    private UsuarioSessionBean usuarioSessionBean;

    private List<CorreoElectronico> lista;
    private CorreoElectronico correo;

    /** Creates a new instance of BannerBean */
    public CorreoElectronicoBean() {
        
    }

    @PostConstruct
    private void init() {        
        lista = correoElectronicoRN.getCorreosNoEnviados();        
    }
    
    public void enviarCorreo(CorreoElectronico ce){
        List<CorreoElectronico> correos = new ArrayList<CorreoElectronico>();
        correos.add(ce);
        
        //Enviamos los correos con un nuevo hilo...
        SenderEmail se = new SenderEmail(mailFactoryBean, correos);
        se.start();
        JsfUtil.addInfoMessage("Enviando mail....");
    }
    
    public void enviarTodo(){
        
        //Enviamos los correos con un nuevo hilo...
        SenderEmail se = new SenderEmail(mailFactoryBean, lista);
        se.start();
        JsfUtil.addInfoMessage("Enviando mail....");        
        
    }
    
    public void actualizarLista(){
        lista = correoElectronicoRN.getCorreosNoEnviados();
    }

    public UsuarioSessionBean getUsuarioSessionBean() {
        return usuarioSessionBean;
    }

    public void setUsuarioSessionBean(UsuarioSessionBean usuarioSessionBean) {
        this.usuarioSessionBean = usuarioSessionBean;
    }
    
    public List<CorreoElectronico> getLista() {
        return lista;
    }

    public void setLista(List<CorreoElectronico> lista) {
        this.lista = lista;
    }

    public CorreoElectronico getCorreo() {
        return correo;
    }

    public void setCorreo(CorreoElectronico correo) {
        this.correo = correo;
    }
    
}
